package com.zeus.mapper;

import com.github.pagehelper.PageInfo;
import com.zeus.pojo.Type;
import com.zeus.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @author 冯扬龙
 * @date 2021/6/10 12:33
 */
@Mapper
@Component
public interface UserMapper {

    /**
     * 后台管理之用户管理模块,增删查改
     */

    /**
     * 后台：
     * 点击用户管理四个字只是进入service层的方法，要根据条件查询用户是通过mapper的方法，两个
     * 查询是在一起的
     通过用户类型和用户名字来查询对应的用户显示在大屏上,根据条件查询用户
     */
    public List<User> queryAppointUserAndAllUser(User user);

    /**
     * 后台：
     增加一个新用户,插入数据到数据库中
     */
    public int addUser(User user);

    /**
     * 后台，根据id删除指定的用户并且由于用了String所以可以支持批量删除的功能
     删除指定用户,支持批量删除
     */
    public int deleteUserById(Integer id);

    /**
     *后台：
     修改密码功能，传入用户名和旧密码新密码
     */
    public int updatePwd(User user);

    /**
     * 后台：
     * 对用户点击修改密码：会携带一个id
     * 首先要判断这个用户是不是存在，这个方法用来判断用户是否存在，根据id可以判断user是否存在
     */
    public User decideById(Integer id);

    /**
     * 前端：
     * 点击编辑用户信息：
     在对用户进行编辑的时候点击上传用户信息，最后一步需要走这个方法
     */
    public int updateData(User user);

    /**
     * 前端：
     登录功能的验证
     根据用户名和密码得到用户对象,再判断对象是不是空，不是空的话就登入成功进入index页面
     */
    public User toLogin(@RequestParam("username") String username, @RequestParam("password")String password);

    /**
     * 前端：
     * 注册功能：
     注册时用来判断用户名是否已经存在,通过用户名去数据库中匹配，
     已经存在的话就不允许使用相同的名字
     */
    public User sureUserExits(String username);
}
